$(function () {
  // 类型筛选
  $("#select-type .select-item").click(function () {
    const type = $(this).attr("data-index");
    $("#select-type .content").text($(this).text());
    $("#select-type .content").addClass("active");
    updateQueryParamAndRedirect("type", type);
  });
  // 行业筛选
  $("#select-industry .select-item").click(function () {
    const industry = $(this).attr("data-index");
    $("#select-industry .content").text($(this).text());
    $("#select-industry .content").addClass("active");
    updateQueryParamAndRedirect("industry", industry);
  });

  $(document).ready(function () {
    // 获取URL参数
    function getUrlParam(paramName) {
      var reParam = new RegExp("(?:[?&]|&)" + paramName + "=([^&]+)", "i");
      var match = window.location.search.match(reParam);
      return match && match.length > 1 ? match[1] : null;
    }

    // 获取.select-item的文本
    function getTypeSelectItemText(dataIndex) {
      var $selectItem = $(
          '#select-type .select-item[data-index="' + dataIndex + '"]'
      );
      return $selectItem.length ? $selectItem.text() : null;
    }

    // 获取.select-item的文本
    function getIndustrySelectItemText(dataIndex) {
      var $selectItem = $(
          '#select-industry .select-item[data-index="' + dataIndex + '"]'
      );
      return $selectItem.length ? $selectItem.text() : null;
    }

    // 检查type参数
    var typeParam = getUrlParam("type");
    if (typeParam) {
      var typeText = getTypeSelectItemText(typeParam);
      if (typeText) {
        $("#select-type .content").text(typeText);
        $("#select-type .content").addClass("active");
      }
    }

    // 检查industry参数
    var industryParam = getUrlParam("industry");
    if (industryParam) {
      var industryText = getIndustrySelectItemText(industryParam);
      if (industryText) {
        $("#select-industry .content").text(industryText);
        $("#select-industry .content").addClass("active");
      }
    }

    var loading = false; // 防止同时加载多次的标志
    var page = 1; // 初始化页码
    var totalPages = 1; // 总页数
    var throttleTimeout; // 用于节流的定时器
    var industryParam = getUrlParam("industry");
    var typeParam = getUrlParam("type");
    var params = {};
    if (industryParam && industryParam != 0) {
      params.industry = industryParam;
    }
    if (typeParam && typeParam != 0) {
      params.type = typeParam;
    }
    function loadMoreData() {
      if (page > totalPages || loading) {
        $("#nomore").show();
        return; // 如果正在加载或已加载完所有数据，则直接返回
      }
      params.page = page;

      loading = true; // 设置正在加载标志
      $("#loading").show(); // 显示加载提示

      $.ajax({
        url: "/home/page/ajaxCaseList", // 服务器端 URL，根据实际情况修改
        type: "GET",
        data: params, // 传递当前页码给服务器
        success: function (response) {
          var res = JSON.parse(response);
          var data = res.data;
          totalPages = res.last_page;
          page = res.current_page + 1; // 更新当前页码
          // 将新数据追加到内容区域
          var html = "";
          $.each(data, function (index, item) {
            html += `<a href="/home/page/casedetail/id/${item.id}" class="list-item item-${
                item.type === "mini" ? "phone" : "pc"
            }" target="_blank">`;
            html += `<img src="${item.cover5v4image}" alt="">`;
            html += `<div class="mask"><div class="content">${item.name}</div></div>`;
            // TODO: 目前返回的缺少字段，根据类型区分类型pc和小程序,下面item.type更改为实际字段
            html += `<img src="/home_assets/imgs/example/icon-${
                item.type === "mini" ? "mini" : "h5"
            }.png" alt="" class="icon">`;
            html += `</a>`;
          });
          $("#content").append(html);
          loading = false; // 数据加载完成，重置加载标志
          $("#loading").hide(); // 隐藏加载提示
        },
        error: function () {
          loading = false; // 在出错时重置加载标志
          $("#loading").hide(); // 隐藏加载提示
          alert("加载数据出错！");
        },
      });
    }

    function throttledScrollHandler() {
      var scrollBottom = $(window).scrollTop() + $(window).height();
      var listWrapBottom =
          $(".list-wrap").offset().top + $(".list-wrap").outerHeight();
      // 当窗口滚动到底部与 listWrap 底部接近时，加载更多内容
      if (scrollBottom >= listWrapBottom - 100 && !loading) {
        if (!loading && !throttleTimeout) {
          // 设置节流定时器，确保在指定时间内只触发一次加载操作
          throttleTimeout = setTimeout(function () {
            loadMoreData(); // 执行加载数据函数
            throttleTimeout = null; // 重置节流定时器
          }, 200); // 200毫秒后再次触发，可以根据需求调整
        }
      }
    }

    loadMoreData();

    $(window).scroll(throttledScrollHandler);
  });
});
